float v accesse
Otázka od: kexo
5. 12. 2003 2:46
zdravim, v accessi robim taketo nieco:
CREATE TABLE tabulka (ID CHAR(10), cislo SINGLE);
nasledne spravim 2 inserty:
INSERT INTO tabulka VALUES ('aaa', 1.5)
INSERT INTO tabulka VALUES ('aaa', 1.3)
1.5 mi ulozi normalne, ale 1.3 mi ulozi ako 1,29999995231628...
kde je problem?
dik
kexo
(D7->ADO->Access2000)
Odpovedá: Jan Fiala
5. 12. 2003 6:02
5.12.2003 kexo:
> zdravim, v accessi robim taketo nieco:
> CREATE TABLE tabulka (ID CHAR(10), cislo SINGLE);
> nasledne spravim 2 inserty:
> INSERT INTO tabulka VALUES ('aaa', 1.5)
> INSERT INTO tabulka VALUES ('aaa', 1.3)
> 1.5 mi ulozi normalne, ale 1.3 mi ulozi ako 1,29999995231628...
> kde je problem?
Problem je v reprezentaci realneho cisla, ktere neni ukladano tak, jak
si jej napises, ale jako mantisa a exponent.
Pokud chces pouzivat cisla s pevnou desetinnou casti, podivej se na
nejake typy treba Currency, Money apod.
--
Jan Fiala
mailto:jan.fiala@wo.cz
Odpovedá: Lstiburek Pavel
5. 12. 2003 7:56
To je v poradku cislo 1.3 nema konecny zozvoj binarni soustave,
stejne cislo mas i Delphi.
Pokud se jedna o presne pocitani je nutno pouzit jiny ciselny typ,
musis pouzit Money (Access) a Currency (Delphi). Oba maji 4
desetinna mista, pokud jich potrebujes vic, tak to nevim
(hlavne na strane Delphi).
Pavel
> From: kexo [mailto:kexo@ynet.sk]
> zdravim, v accessi robim taketo nieco:
>
> CREATE TABLE tabulka (ID CHAR(10), cislo SINGLE);
> nasledne spravim 2 inserty:
> INSERT INTO tabulka VALUES ('aaa', 1.5)
> INSERT INTO tabulka VALUES ('aaa', 1.3)
>
> 1.5 mi ulozi normalne, ale 1.3 mi ulozi ako 1,29999995231628...
>
> kde je problem?
> dik
> kexo
>
> (D7->ADO->Access2000)